﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace passitumi
{
	/**
	 * Define the functionality that all preference managers must implement.  We provide this abstraction so
	 * if the application were ever ported to a different system, it can use alternate persistent storage mechanisms.
	 */
	public interface PreferenceManager
	{
		// Save the users current preference settings
		void savePreferences();

		// Retrieve the current download file path
		string getDownloadFilePath();

		// Retrieve the current user's display name
		string getDisplayName();

		// Update the current download file path (volatile update until saved)
		void updateDownloadFilePath(string downloadFilePath);

		// Update the user's broadcasted display name (volatile update until saved)
		void updateDisplayName(string displayName);

		// Set the display name to a default value
		void setDefaultDisplayName();

		// Check for the first run of this application
		bool isFirstRun();	
	}
}
